package com.dragon.modules.yuegou.service.product;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dragon.common.web.PageRequest;
import com.dragon.modules.yuegou.entity.product.GrouponEntity;
import com.dragon.modules.yuegou.model.order.Order;
import com.dragon.modules.yuegou.model.product.Groupon;

import java.util.List;

/**
 * 团购表 服务接口
 *
 * @author pbuilder generated
 * @date 2019-09-17 14:58:07
 * @version 2.0
 */
public interface GrouponService extends IService<GrouponEntity> {

    /**
     * 根据sku ID 获取拼团活动列表
     *
     * @param page
     * @param busdId
     * @param skuId
     * @return
     */
    IPage<Groupon> getGrouponList(PageRequest page, String busdId, String skuId);

    /**
     * 填充其它信息
     *
     * @param list
     */
    void fillInfo(List<Groupon> list);

    /**
     * 开团
     *
     * @param grouponInfoId
     * @param memberId
     */
    Order openGroupon(String grouponInfoId, String memberId);

    /**
     * 单独购买
     *
     * @param grouponInfoId
     * @param memberId
     * @return
     */
    Order buySingle(String grouponInfoId, String memberId);

    /**
     * 统计该活动多少人参加
     *
     * @param grouponInfoId
     * @return
     */
    int countNumber(String grouponInfoId);

    /**
     * 检查过期
     */
    void checkExpireGroupon();


    /**
     * 拼团过期
     *
     * @param groupon
     * @return
     */
    void expireGroupon(Groupon groupon);
}